دانشگاه علمی کاربردی قروه رشته ای تی |
|||||||||||||||||||||||||||||||||||||
چهار شنبه 30 بهمن 1389برچسب:, :: 19:37 :: نويسنده : مخدومی
بسه تعالی اموزش زبان برنامه نویسی پاسکال زبان پاسکال یکی از زبانهای برنامه سازی است که ویژگی های اموزشی ان بسیار بالاست یعنی زبان خوبی برای اموزش برنامه نویسی منظم و دقیق است قابلیت خوانایی و درک برنامه های این زبان بالاست و میتوان برنامه هایی نوشت که احتمال است .(stru cted خطای ان بسیار اندک باشدعلتش این است که زبان ساختار یافته ( ساختار کلی برنامه چیست؟ 1-تعریف قسمتهای تکرای را از بین میبریم Procedure ,function2- به وسیله 3- بدنه فرم کلی پاسکال : Program1- اسم const2-تعریف ثابت type3-تعریف نوع var4-تعریف متغیر ها procedure5-(پارامتر ها) نام A:=15متغییر:محلی است که دارای یک اسم باشد و میتوان مقداری را در ان ذخیره کرد مانند انواع متغییر در پاسکال: انواع اعداد صحیح شامل اعداد بدون نقطه و ممیز:INTEGER-1 مشخص می شود میتواند یک کاراکتر را در خود نگهداری کند بنابر این CHAR نوع داده کارکتری که با کلمه :CHAR-2 کاراکتر ها در یک بایت از حافظه کامپیوتر ذخیره میشوند. برای تعریف اعداد اعشاری به کار میرود.:real-3 Readln) برای خواندن اطلاعات از ورودی به کار میرود و به صورت ( اسامی متغییر ها: readlnدستور برای چاپ اطلاعات در خروجی به کار میرود : writelnدستور قرار بگیرد‘ ‘پیغام مورد نظر برای چاپ در خروجی حتما باید در داخل کوتیشن Writeln(‘ insert the nomber’) مثال: برنامه ای بنویسید که یک عدد را دریافت و در خروجی به ما بگوید که عدد منفی است یا مثبت. نام برنامه Program p1; جهت پاک کردن صفحه نمایش در خروجی به کار میرودUses crt; جهت تعریف متغییر ها به کار میرودvar متغییری است از نوع اعداد صحیحA: integer; شروع برنامه begin جهت پاک کردن صفحه نمایش در خروجی به کار میرودClrscr; را) a این دستور کار خواندن متغییر را در خروجی اجرا میکند(بخوان متغییر Readln(a); بزرگتر از 0 بود انگاه ) a با این دستور برای برنامه شرط برقرار میکنیم به ایم معنی که (اگر If a>0 then دستوری است برای چاپ کردن پیغام مورد نظر در خروجی Writeln(‘add vared shode +ast’) دستوری است که اگر شرط ما درست نبوداز ان استفاده میکنیم به معنی( وگرنه) (در غیر این صورت)else دستوری برای چاپ کردن پیغام مورد نظرWriteln(‘add vared shode – ast’); این دستور در برنامه باعث میشود که در خروجی بعد از وارد کردن عدد جواب را برای ما نمایش دهد و در پایان هر برنامه لازم است Readln; پایان برنامه End. استفاده میکنیم;نکته1: در پایان هر خط ازسیمی کالن هیچگاه سیمی کالن نمی گیردelseنکته2: خط قبل از هر دو با هم برای پاک کردن صفحه نمایش استفاده میشودUses crt , clrscr نکته3: کلمه )استفاده میکنیم =) استفاده میکنیم اما اگر عددی را برار با متغییر قرار بدهیم از(:=نکته4: برای اینکه عدد را در داخل متغییر قرار بدهیم از ( صفحه1
نام متغییر مورد استفاده در برنامه میباشد.a برای جلوگیری از شرط زیاد از این دستور استفاده میکنیم .:Case a ofدستور را 7 بار بنویسیم If مثال: برای اینکه برنامه ای بنویسیم که وقتی عددی وارد میکنیم معادل ان روزهای هفته را چاپ نماید باید دستور فقط یک بار دستو را caseمینویسیم اگر عدد 1 وارد شد انگاه چاپ کن شنبه و اگر عدد 2 وارد شد انگاه چاپ کن یکشنبه اما با استفاده از دستور مینویسیم و بعد از ان عدد ها را نوشته و در مقابل ان عبارتی که باید چاپ شود را قرار میدهیم مثل : Case a of 1: writeln(‘shanbe’); 2:writeln(‘yek shanbe’); و.... با استفاده از این دستور میتوانیم متنی را که میخاهیم چاپ کنیم در هر کجای صفحه نمایش در خروجی چاپ کنیم مثلا :Go to دستور میخواهیم شکل ستاره را در وسط صفحه نمایش چاپ کند. برای این کار باید مختصات وسط صفحه نمایش را داشته باشم فرض کنید مختصات وسط 20 و 25 باشد Go to xy(20,25); چاپ میشود تقریبا وسط صفحه نمایش.Y =25و X =20با این برنامه شکل ستاره در مختصات Writeln(‘*’); را 20 بار بنویسیم تا در خروجی 20Writeln(‘*’) وقتی که میخاهیم در یک برنامه ای 20 تا ستاره چاپ کنیم باید دستور : forدستور استفاده میکنیم فقط یک بار دستور چاپ ستاره را مینویسیم و حلقه باعث میشود تا For بار شکل ستاره را چاپ نماید اما وقتی از دستور هر تعداد که خاستیم فقط عدد ان را وارد نماییم به مثال زیر توجه نمایید For i:=1 to 20 do Writeln(‘*’); در اینجا با هر بار تکرار حلقه یه بار شکل ستاره چاپ میشود و این کار ادامه دارد تا 20 تا ستاره کامل چاپ شود حلقه های تو در تو :درحلقه های تو در تو یک حلقه بیرونی یا شمارنده دارم و یک یا چند حلقه درونی یا اجرا کننده مثال: For i:=1 to 10 do For j:= 1 to 10 do Write(i*j) با این برنامه میخواهیم جدول ضرب ر در خروجی چاپ نماییم و ... ضرب میشود و نتیجه ان به صورت عمودی زیر هم J(3) وJ(2)وJ(1) 10 بار با حلقه داخلی یعنی I(1)در حلقه بیرونی تغییر میکند و دوباره 10 بار با حلقه داخلی ضرب میشود وI(2) به I (1)چاپ میشود و وقتی حلقه داخلی تمام شد حلقه بیرونی از باز تنیجه چاپ میشود و این کار اونقد تکرار میشود تا حلقه بیرونی یا شمارنه به پایان برسد و در نهایت یه جدول ضرب در خروجی چاپ خواهد شد در داخل حلقه وقتی استفاده میشود که عدد اول ما کوچکتر از عدد دوم باشد مثل 1 تا 10 اما بر عکس وقتی عدد اول ماTo نکته1:کلمه استفاده میکنیمdowntoبزرگتر از عدد دوم ما باشد مثل 10 تا 1 از کلمه بایدvar یک متغییر هستند که اعداد 1 تا 10 در ان قرار گرفته است پس باید حتما در تعریف متغییر بعد از (i,j)نکته 2: در این برنامه یعنی متغییر ها از نوع اعداد صحیح هستندI , j :integerتعریف شوند که از چه نوع اعداد هستند مثال اول مینویسیمFor نکته 3:در داخل این برنامه چون از دو دستور استفاده شده است پس به یک شروع و پایان اضافه نیازمندیم بعد از اضافه میکنیمEnd;یک Write(‘i*j’)و بعد از begin : با استفاده از این دستور میتوانیم در داخل حلقه شرط برقرار کنیم مثال: برنامه ای بنویسید که اعداد کوچکتر از 100 را چاپ کند. whileدستور I :=1; کوچکتر و مساوی 100 باشد به چاپ اعداد ادامه بدهI تا وقتی که While I <= 100 do Write(i :1); I:=i+1; در این برنامه حلقه 100 بار اجرا میشود و تا وقتی که اعداد کوچکتر از 100 باشد انها را چاپ میکند با استفاده از این دستور ما در داخل حلقه شرط قرار میدهیم اما به صورت بر عکس یعنی اگر شرط برقرار :Repeat , untilدستور نبود انگاه چاپ کن مثال: برنامه ای بنویسید که اگر عدد وارد شده بزرگتر از 100 نبود انگاه عدد مورد نظر را چاپ کند. I:= 1; Repeat Write(1); Until i>100 دراین برنامه وقتی عددی را وارد میکنیم دستور شرط ان را برسی میکند و اگر عدد بزرگتر از 100 بود ان را چاپ نمیکند فقط اعداد کوچگتر از 100 را چاپ میکند.
برگرفته از کتاب پاسکال (الیوت ب.کافمن) با ارزوی موفقیت:مخدومی صفحه2 ارایه ها ارایه یک نوع ساختمان داده است که تعدادی داده هم نوع (مثل نمرات امتحانی یک کلاس)دران ذخیره میشود و با استفاده از ارایه میتوانیم برای مجموعه ای از داده ها نام یک متغییر را به کار میبریم علاوه بر این میتوانیم به تک تک عناصر موجود در ارایه مراجه برای هر عنصر ان یک نام برگزیده میشودAکنبم و عمل نامگذاری در ارایه مانند نام گزاری به این شکل است مثال: متغییر A = a(1) , a(2) , a(3) , a(4), …
a1 a2 a3 a4 a5 a6 a7 a8 a9 a10
A = وقتی میخاهیم 100 عدد را در داخل متغییر ها قرار بدهیم باید 100 تا متغییر تعریف بکنیم اما با کمک ارایه میتوانیم یک ارایه 100 عنصری تشکیل دهیم و فقط یک متغییر تعریف کنیم a:array[1..10] of integerنحوه تعریف ارایه : مثال : برنامه ای بنویسید که 10 عدد را دریافت کند و به صورت معکوس چاپ کند( با استفاده از ارایه). A:array [1..10] of integer; I:integer; در داخل این حلقه عنصر های ارایه را شماره گزاری میکندFor i:= 1 to 10 do در این قسمت برنامه عدد ها را دریافت و در داخل عنصر های ارایه قرار میدهدReadln(a[i]); در داخل این حلقه عنصر ها به صورت معکوس قرار میگیرد For i:= 10 downto 1 do در این قسمت برنامه عنصر های معکوس شده در خروجی چاپ میشودWriteln(a[i]);
مرتب سازی در ارایه: انتخابیSelected sord-1 حبابیBubel sord-2 جستجو در ارایه: 1-جستجوی ترتیبی 2-جستجوی باینری روش مرتب سازی حبابی: در این روش تعدادی گذر و تعدادی مقایسه در هر گذر داریم .که برنامه نویسی ان به شکل دو حلقه تو در تو است یکی برای گذر و دیگری برای تکرار . گذر نیازمند است. اتفاقی که در هر گذر میافتد این است که بزرگترین عنصرn-1گذر و حداقل به N عنصری حداکثر به N یک ارایه ارایه در انتهای عناصر دیگر قرار میگیرد و در گذر های بعدی عنصر های بعد از ان عنصر که بزرگترین هستند به ترتیب از اخر ارایه به اول ارایه درج میشوند مثال: برنامه ای بنویسید که 10 عنصر را در ارایه ذخیره کند و سپس به روش مرتب سازی حبابی انها را مرتب و نمایش دهد. a:array[1..10] of integer; i,j,p:integer; begin clrscr; for i:=1 to 10 do readln(a[i]); for i:=1 to 9 do begin for j:=i+1 to 9 do if a[i]>a[j] then begin p:=a[i]; a[i]:=a[j]; a[j]:=p; end; writeln(a[i]); end; صفحه 1 جستجو در ارایه: ترتیبی یا خطی : در این نوع جستجو تک تک عدد مورد نظر را با عنصر ها مقایسه میکند. جستجوی باینری(دودویی): در این نوع جستجو ارایه را به سه قسمت تقسیم میکند
A
low mid High مثال : برنامه ای بنویسید که عدد 20 را در ارایه پیدا کند و نمایش دهد. برابرmidدر اینجا اول باید ارایه را مرتب کنیم بعد از مرتب سازی ارایه ان را به سه قسمت تقسیم میکنیم و بعد اگر عدد موردنظر با بزرگتر بود این قسمت حذف lowمقایسه میشود. اگر عدد 20 از Mid , low , highبود عدد چاپ میشود و اگر برابر نبود ان را با میماند و دو باره ان راMid -1حذف شد highمیماند و دوباره ان را تقسیم میکند و باز ان را مقایسه میکند و اگر Mid +1میشود و تقسیم میکند و این کار تا وقتی که عدد مورد نظر پیدا شود ادامه می یابد برنامه ای بنویسید 20 تا عدد دریافت کند و سپس عدد مورد نظر را در داخل انها پیدا کند. Readln(k); Low:=1; High:=20 While low
Mid =(low +high)/2; If k:=x[mid] then Write(‘the number fund’); If k> x[mid] then Low :=mid +1; If k High:=mid-1; End; برای اینکه این برنامه را اجرا کنیم باید قبل از ان برنامه قبلی را بنویسیم تا اعداد مرتب شوند بعد از ان این برنامه را به ان اضافه میکنیم
نظرات شما عزیزان:
درباره وبلاگ با سلام خدمت دوستان عزیز مخدومی هستم از همدان.رشته فناوری اطلاعات د mehdi24.hamedan@yahoo.com 09355130078 دوستان و دانشجویان میتوانند جهت دریافت مقالات و صفحه وب های طراحی شده و اماده ،عضو سایت شده و از طریق ایمیل یا درخواست از طریق مسیج دریافت نمایند.اماده سازی وبسایت با همراه دامین و هاست با کمترین هزینه آخرین مطالب پيوندها
![]() نويسندگان
|
|||||||||||||||||||||||||||||||||||||
![]() |